home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turnbull China Bikeride
/
Turnbull China Bikeride - Disc 2.iso
/
ACORNUSERS
/
CBSA
/
INTERNET
/
ARCFIXER
/
ArcFixer-source
< prev
Wrap
C/C++ Source or Header
|
1999-12-05
|
2KB
|
75 lines
/* Archive fixer from the web */
#include <stdio.h>
#include <stdlib.h>
#include "swis.h"
#define name1 argv[2]?argv[1]:bakname
#define name2 argv[2]?argv[2]:argv[1]
int main(int argc, char *argv[])
{
FILE *IN,*OUT;
char ch=0,oldch=0;
char bakname[]="ArcFixed/arc";
printf("ArcFS (v1.02) archive fixer for web downloads\n");
printf("By Paul F. Johnson : paulf.johnson@ukonline.co.uk\n\n");
printf("This program should fix the problems which Windows based \n");
printf("browsers spew up (text on screen instead of a file).\n\n");
if (argc>=2) {
if (!argv[2])
{
printf("Creating new file (%s).\n",bakname);
if (rename(argv[1],bakname))
{
printf("I cannot rename the input file\n");
exit(1);
}
}
printf("%s --> %s\n",name1,name2);
if (!(IN=fopen(name1,"rb")))
{
printf("Unable to read the source file\n");
exit(1);
}
if (!(OUT=fopen(name2,"w+b")))
{
printf("Unable to write the fixed file\n");
exit(1);
}
oldch=getc(IN);
ch=getc(IN);
while (!feof(IN))
{
if (ch == 0x0a)
{
if (oldch==0x0d)
{
putc(ch,OUT);
ch=getc(IN);
}
else
putc(oldch,OUT);
}
else
putc(oldch,OUT);
oldch=ch;
ch=getc(IN);
}
putc(oldch,OUT);
fclose(IN);
fclose(OUT);
printf("Jobs a good 'un.\n\n");
_swi(OS_File,18,name1,0xddc)
}
else
{
printf("Usage\n");
printf("\t\tArcFixer old/arc <new/arc> \n");
printf("Extensions are not required though\n");
exit(1);
}
return 0;
}